package com.flinkjar.flinkjardemo.common;


/**
 * sql模版服务
 */
public class SqlTemplateService {


    /**
     * 获取 insert sql 模版
     *
     * @param tableIndex 表下标
     * @return
     */
    public static String getInsertSqlTemplate(int tableIndex) {
        /**
         * 构建一个SQL语句, 可能包含一个或多个'?'参数占位符
         * eg: insert into user_product_1 (id, user_id, product_id)  values  (?, ?, ?)
         * 注意在关键字前后加空格
         */
        StringBuilder sql = new StringBuilder();
        sql
                // 指定表
                .append("insert into user_product_").append(tableIndex)
                // 指定字段
                .append(" (id, user_id, product_id) ")
                .append(" values ")
                // 占位符
                .append(" (?, ?, ?)");
        return sql.toString();
    }


    /**
     * 获取 update sql 模版
     *
     * @param tableIndex 表下标
     * @return
     */
    public static String getUpdateSqlTemplate(int tableIndex) {
        /**
         * 构建一个SQL语句, 可能包含一个或多个'?'参数占位符
         * eg: update user_product_1 set  user_id = ?, product_id = ? where id = ? and userId = ?
         * 注意在关键字前后加空格
         */
        StringBuilder sql = new StringBuilder();
        sql
                // 指定表
                .append("update user_product_").append(tableIndex)
                .append(" set ")
                .append(" user_id =").append(" ?").append(",")
                // 最后一个字段,不用加“,”
                .append(" product_id =").append(" ?")
                .append(" where id =").append(" ?")
                .append(" and")
                .append(" user_id =").append(" ?");
        return sql.toString();
    }

    /**
     * 获取 delete sql 模版
     *
     * @param tableIndex 表下标
     * @return
     */
    public static String getDeleteSqlTemplate(int tableIndex) {
        /**
         * 构建一个SQL语句, 可能包含一个或多个'?'参数占位符
         * eg: delete from user_product_1 where id = ? and userId = ?
         * 注意在关键字前后加空格
         */
        StringBuilder sql = new StringBuilder();
        sql
                // 指定表
                .append("delete from user_product_").append(tableIndex)
                .append(" where id =").append(" ?")
                .append(" and")
                .append(" user_id =").append(" ?");
        return sql.toString();
    }

    public static void main(String[] args) {
        System.out.println(getInsertSqlTemplate(1));
        System.out.println(getUpdateSqlTemplate(1));
        System.out.println(getDeleteSqlTemplate(1));
    }


}
